package cn.tedu.charging.order.pojo.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;

/**
 *
 * ORM -------------------------------------
 * 订单成功表 PO persist 持久的
 * ChargingBillSuccessPO 里的属性要和表的字段 一一 对应
 *
 * ORM
 * 对象 ChargingBillSuccessPO java中的对象
 * 关系 charging_bill_success 关系型的数据库中的表
 * 映射 对象属性和表中字段一一对应
 * 设计 -------------------------------------
 *
 * 先梳理业务,再设计表,技术是用来解决业务问题
 *
 * 明确订单的业务 订单的目的
 * 一条订单记录 用户在平台就某项服务,达成的一个合同/凭据/证明
 *
 * 用户 (用户id,用户名称,地址....)
 * 平台 (运营商id,商家id)
 * 服务 (设备信息 枪id,桩id,站id,电费,消费总价 / 商品信息 商品名称,商品数量,商品单价 商品总价)
 * 订单 (订单编号,订单状态,订单时间...)
 *      订单状态 充电中, 充电完成(正常完成,异常完成)
 *
 *      交易类 新建(订单)-->
 *          待支付(支付)-->支付成功(支付)-->
 *          待发货(物流)-->已发货(物流)-->
 *          已收货(用户)
 *
 *      按照业务 拆分
 *         订单状态
 *         支付状态
 *         物流状态
 *
 *  支付信息 (支付方式 <线上支付,货到付款/>,支付渠道<支付宝,微信,银行卡,数字人民币>,支付金额,支付时间)
 *  履约信息 可选 (什么方式 什么时间,谁,完成服务 ,电商里的 配送信息)
 *
 */
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
@TableName("charging_bill_success") //指定表名 和数据库中具体的表进行映射
//ChargingBillSuccessPO --> charging_bill_success_p_o
public class ChargingBillSuccessPO {

    /**
     * 订单信息 id
     * AUTO 增加数据的时候 id 自增 ,前提是数据库表设置了自增
     */
    @TableId(type = IdType.AUTO)
    Integer id;

    /**
     * 订单信息 订单编号
     */
    String billId;

    /**
     * 订单信息 订单状态
     */
    Integer billStatus;

    /**
     * 设备信息 枪id 如果是电商 这里是商品id
     */
    Integer gunId;

    /**
     * 用户信息 用户id
     */
    Integer userId;

}

